package com.szjz.elasticsearch.eshelper.service;

import org.elasticsearch.index.query.QueryBuilder;

public interface ESService {

	/**
	 * 用于项目启动的时候创建索引库
	 * 根据class类创建索引库
	 */
	Boolean createIndex(Class clazz);

	/**
	 * 用于保存数据的时候创建索引库
	 * 根据索引库名称和class创建索引库
	 */
	Boolean createIndex(String idxName, Class clazz);

	/**
	 * 判断索引库是否存在
	 *
	 * @param idxName 索引库名称
	 * @return
	 */
	boolean indexExist(String idxName);


	/**
	 * 删除index
	 */
	void deleteIndex(String idxName);

	/**
	 * 创建映射内容
	 *
	 * @param clazz
	 * @param dynamic
	 * @return
	 */
	String getMappingContent(Class clazz, Boolean dynamic);


	/**
	 * @param idxName
	 * @param builder
	 * @since
	 */
	void deleteByQuery(String idxName, QueryBuilder builder);


}
